// 编写路由
const express = require('express');
const router = express.Router();
// 导入用户业务逻辑模块
const userController = require('../../controllers/userController');
const Email = require('../../common/emailApi');

// 1. 注册
router.post('/register', async (req,res)=>{
    // 接收前端提交邮箱和验证码（辨别用户真假）
    let code = req.body.code;
    let user_acc= req.body.user_acc;
    // console.log({code, user_acc});
    await Email.verifyEmailCode(user_acc,code)
    .then(
        content=>{
            if(content.code == 200){
                // 注册账号
                userController.register(req,res)
            }
            else {
                res.send({code: -1, msg: '请填写正确的验证码。'})
            }
        }
    )
    .catch(
        err=> {
            res.send(err)
        }
    )
    
})

// 2. 登录
router.post('/login', async (req,res)=>{
    // 用户登录
    await userController.login(req,res);
})

// 3. 注销
router.post('/remove', async (req,res,next)=>{
    // 用户登录
    await userController.remove(req,res,next);
})

// 4. 获取用户头像
router.get('/get_picUrl',async (req,res)=>{
    // 此函数通过token获取用户头像
    await userController.getPicUrl(req,res);
})
router.get('/get_img',async (req,res)=>{
    // 此函数通过user_id参数获用户取头像
    await userController.getImage(req,res);
})


// 5. 获取用户资料
router.get('/get_user_info',async (req,res)=>{
    await userController.getUserInfo(req,res);
})

// 6. 设置用户头像
router.post('/set_picUrl', async (req,res)=>{
    await userController.setPicUrl(req,res);
})

// 7. 设置用户资料
router.post('/set_user_info',async (req,res)=>{
    await userController.setUserInfo(req,res);
})

// 8. 找回密码
router.post('/find_pwd',async (req,res)=>{
      // 接收前端提交邮箱和验证码（辨别用户真假）
      let code = req.body.code;
      let user_acc= req.body.user_acc;
      // 校验邮件的验证码
      await Email.verifyEmailCode(user_acc,code)
      .then(
          async content=>{
              if(content.code == 200){
                  // 找回密码
                 await userController.findPwd(req,res);
              }
              else {
                  res.send({code: -1, msg: '请填写正确的验证码。'});
              }
          }
      )
      .catch(
          err=> {
              res.send(err)
          }
      )
})


// 9. 邮箱登录
router.post('/email_login', async (req,res)=>{
    // 接收前端提交邮箱和验证码（辨别用户真假）
    let code = req.body.code;
    let user_acc= req.body.user_acc || req.body.email;
    // console.log(22222,(user_acc,code))
    await Email.verifyEmailCode(user_acc,code)
    .then(
        content=>{
            if(content.code == 200){
                // 注册账号
                userController.emailLogin(req,res)
            }
            else {
                res.send({code: -1, msg: '请填写正确的验证码。'})
            }
        }
    )
    .catch(
        err=> {
            res.send(err)
        }
    )
    
})


// 10. 是否处于登录
router.get('/online',async (req,res)=>{
    await userController.onLine(req,res);
})
// 把用户路由挂载到模块系统
module.exports = router;